/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Chemin;

/**
 * @author okaido
 */

public class Case {
    private Coordonnee coordonnee; /// Coordonnée
    private int G; /// Distance parcourus
    private int H; /// Distance restante à vol d'oiseau (Mathatan)
    private int F; /// F = G + H
    private int direction; /// direction par rapport au précedant parent
    private Case parent;
    private Case succ; /// Pour la liste
    private Case pred; /// Pour la liste

    /**
     * Constructeur
     * @param coordonnee
     * @param G     Distance parcourus
     * @param H     Distance restante à vol d'oiseau (Mathatan)
     * @param F     F = G + H
     * @param parent    Noeud précédent
     */
    public Case(Coordonnee coordonnee, int G, int H, int F, int direction, Case parent) {
        this.coordonnee = coordonnee;
        this.G = G;
        this.H = H;
        this.F = F;
        this.direction = direction;
        this.parent = parent;
        this.succ = null;
        this.pred = null;

    }

    public int getF() {
        return F;
    }
    public int getG() {
        return G;
    }
    public int getH() {
        return H;
    }
    public Coordonnee getCoordonnee() {
        return coordonnee;
    }
    public int getDirection() {
        return direction;
    }

    public Case getParent() {
        return parent;
    }
    public void setF(int F) {
        this.F = F;
    }
    public void setG(int G) {
        this.G = G;
    }
    public void setH(int H) {
        this.H = H;
    }
    public void setCoordonnee(Coordonnee coordonnee) {
        this.coordonnee = coordonnee;
    }
    public void setParent(Case parent) {
        this.parent = parent;
    }

    public void setDirection(int direction) {
        this.direction = direction;
    }

    public void setPred(Case pred) {
        this.pred = pred;
    }

    public void setSucc(Case succ) {
        this.succ = succ;
    }

    public Case getPred() {
        return pred;
    }

    public Case getSucc() {
        return succ;
    }

}